/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.ove.openmath.jome.ctrlview.bidim;

/**
 *
 * @author Mr.Sam
 */
import java.awt.*;
import fr.ove.openmath.jome.ctrlview.bidim.GraphicContext;
import fr.ove.openmath.jome.ctrlview.bidim.Localisable;
import fr.ove.openmath.jome.ctrlview.bidim.Sizable;

/**
* An implementation of the <CODE>Displayable</CODE> interface.<BR>
*
* @author © 1999 DIRAT Laurent
* @version 2.0 29/06/1999
*/
public interface Displayable extends Localisable, Sizable {
    /**
    * Sets the ascent.
    * @param ascent the new ascent value.
    */
    public void setAscent(int ascent);
    
    /**
    * Returns the ascent.
    * @return the ascent.
    */
    public int getAscent();
    
    /**
    * Sets the descent.
    * @param descent the new descent value.
    */
    public void setDescent(int descent);
    
    /**
    * Returns the descent.
    * @return the descent.
    */
    public int getDescent();
    
    /**
    * Sets the horizontal shift.
    * @param shift the new horizontal shift value.
    */
    public void setShiftX(int shiftX);
    
    /**
    * Returns the horizontal shift.
    * @return the horizontal shift.
    */
    public int getShiftX();
    
    /**
    * Sets the vertical shift.
    * @param shiftY the new vertical shift value.
    */
    public void setShiftY(int shiftY);
    
    /**
    * Returns the vertical shift.
    * @return the vertical shift.
    */
    public int getShiftY();
    
    /**
    * Sets all the attributes.
    * @param ascent the new ascent value.
    * @param descent the new descent value.
    * @param shiftX the new horizontal shift value.
    * @param shiftY the new vertical shift value.
    */
    public void setAttributes(int ascent, int descent, int shiftX, int shiftY);
        
    /**
    * Sets the graphic context of the instance.
    * @param graphicContext the graphic context.
    */
    public void setGraphicContext(GraphicContext graphicContext);
    
    /**
    * Returns the graphic context of the instance.
    */
    public GraphicContext getGraphicContext();
    
    /**
    * The paint method of the object to display.
    * @param g the drawing area of the symbol.
    */
    public void paint(Graphics g);
}
